package com.jxd.ordering.service;

import com.jxd.ordering.model.Order;

import java.util.List;
import java.util.Map;

public interface IOrderService {
    /**
     * 新增订餐信息
     * @param order 订餐信息实体类
     * @return 是否新增成功
     */
    boolean addOrder(Order order);

    /**
     * 修改订餐信息
     * @param order 订餐信息实体类
     * @return 是否修改成功
     */
    boolean editOrder(Order order);

    /**
     * 修改订单状态
     * @param orderno 订单编号
     * @param statu 订单状态
     * @return 是否修改成功
     */
    boolean editOrderStatu(int orderno, int statu);

    /**
     * 批量删除订单
     * @param ordernos 订单编号数组
     * @return 是否删除成功
     */
    boolean delOrder(int[] ordernos);

    /**
     * 分页查询订单信息
     * @param queryMap 包含 int page, int limit, String start, String end, empno, int type, int statu
     * @return 查询结果
     */
    Map<String, Object> getOrderPyPage(Map<String, String> queryMap);

    /**
     * 按订单编号查询订单信息
     * @param orderno 订单编号
     * @return 查询结果
     */
    Order getOrderByOrderno(int orderno);

    /**
     * 修改订餐人员信息
     * @param orderno 订单号
     * @param empnos 订餐人员编号数组
     * @return 是否修改成功
     */
    boolean editOrderEmp(int orderno, int[] empnos);

    /**
     * 修改订餐餐品信息
     * @param orderno 订单号
     * @param meals 餐品信息 包含 mealno 餐品编号 count 数量 remark 备注
     * @return 是否修改成功
     */
    boolean editOrderMeal(int orderno, Map<String, Map<String, String>> meals);

    /**
     * 根据订单号和餐品编号查询订餐餐品信息
     * @param orderno 订单编号
     * @param mealno 餐品编号
     * @return 查询结果
     */
    Map<String, Object> getOrderMealByMealno(int orderno, int mealno);

    /**
     * 按订单号查询所有订餐人员信息
     * @param orderno 订单编号
     * @return 查询结果
     */
    List<Map<String, String>> getAllOrderEmp(int orderno);

    /**
     * 按订单号查询所有订餐餐品信息
     * @param orderno 订单编号
     * @return 查询结果
     */
    Map<String, Map<String, Object>> getAllOrderMeal(int orderno);
}
